<?php
// добавляем CSS для обображения заказов (переопределяются некоторые CSS из основного ./index.css файла
// $layout->AddCSS('/admin/mods/order/order.css');
$layout->AddJS('/admin/jscss/jquery.maskedinput-1.3.js');
$layout->AddJS('/admin/mods/order/edit.js');

// форма заполенная по умолчанию
$form = array(
	'id' => isset($_REQUEST['id']) ? $_REQUEST['id'] : NULL,
	'equipment' => isset($_POST['equipment']) ? trim($_POST['equipment']) : '',
	'defect' => isset($_POST['defect']) ? $_POST['defect'] : '',
	'profession' => isset($_POST['profession']) ? $_POST['profession'] : '',
	'customer_date' => isset($_POST['customer_date']) ? $_POST['customer_date'] : '',
	'customer_time' => isset($_POST['customer_time']) ? $_POST['customer_time'] : '',
	'customer_phone' => isset($_POST['customer_phone']) ? $_POST['customer_phone'] : '',
	'customer_address' => isset($_POST['customer_address']) ? $_POST['customer_address'] : '',
	'region' => isset($_POST['region']) ? $_POST['region'] : '',
	'todo' => isset($_POST['todo']) ? $_POST['todo'] : 'edit-this',
);
// заказ по умолчанию
$order = new Order();

// список ошибок при валидации формы
$errors = array();

// если пользователь отправил заполенную форму
if ( !empty($_POST) )
{

	//{{{ Проверяем правильность заполнения формы


	if ( !$form['equipment'] )
	{
		$errors[] = "Не правильно заполенено оборудование";
	}
	//print $form['customer_date'];
	if ( !preg_match("/^\d{2}\.\d{2}\.\d{4}$/", trim($form['customer_date'])) )
	{
		$errors[] = "Не правильно указана дата";
	}

	if ( !preg_match("/^\d{2}:\d{2}$/", trim($form['customer_time'])) )
	{
		$errors[] = "Не правильно указано время";
	}

	if ( !preg_match("/^8\d{3}\-\d{3}-\d{4}$/", trim($form['customer_phone'])) )
	{
		$errors[] = "Не правильно указан телефон.";
	}

	//}}}


	if ( !$errors )
	{
		$profession = new Profession();
		$profession->title = $form['profession'];

		$equipment = new Equipment();
		$equipment->title = $form['equipment'];

		$customer_time = strtotime(trim($form['customer_date'] . ' ' . $form['customer_time']));

		$order->id = $form['id'];
		$order->status = 'insert';
		$order->status_description = 'Добавлен оператором %operator_name%';
		$order->defect = $form['defect'];
		$order->equipment = $equipment;
		$order->profession = $profession;
		$order->customer_time = $customer_time;
		$order->phone = $form['customer_phone'];
		$order->address = $form['customer_address'];
		$order->region = $form['region'];

		if ( $id = $order->Save(&$db) )
		{
			$form['id'] = $id;
			$layout->SetMessage('Новый заказ добавлен');

			// определяем что нужно сделать после успешного добавления
			switch ($form['todo'])
			{
				case 'main-page':
					header("Location: ./index.php");
					break;
				case 'edit-this':
					header("Location: ./index.php?mod=order&act=edit&id=" . $id);
					break;
				case 'list-order':
					header("Location: ./index.php?mod=order");
					break;
			}
		}
		else
		{
			trigger_error('при сохранении заказа произошла ошибка. Обратитесь к администратору.', E_USER_ERROR);
		}
		//header("Location : ./");
	}
	else
	{
		$layout->SetErrors($errors);
	}
	//
}
?>